Learning To Rank中Pairwise方法的学习
由于
Pairwise
方式的排序学习方法 训练样本构建方便、速度快同时效果也还可以,因此在工业界和学术的应用非常广泛^_^
2002-RankSvm
RankSvm
是最经典的一种,将其余的相关实现方法学习总结简单的记录到本文中。RankSvm
的学习记录在这里
2006-IRSVM
IRSVM
直接是RankSvm
的改进,RankSvm
的训练目标是让序列pair的不一致pair对
对最少,其优化函数为:
τ(ra,rb)=P−QP+Q=1−2Q(m2)
因此直接暴露了两大问题:
问题1:位置误差
Example1:
档位:3,2,1
排序1:2 3 2 1 1 1 1
排序2:3 2 1 2 1 1 1
从样例1中可以看到如果是按τ最大化进行优化的话,排序1
中2 3
为不一致pair,排序2中1 2
为不一致pair,因此他们的τ得分是一致的,但是明显可以看到排序2的应该为更优,因为越top
级别的重要性越大
因此IRSVM
考虑了计算τ时将位置顺序纳入误差
问题2:长度误差
Example2:
档位:3,2,1
排序3:3 2 2 1 1 1 1
排序4:3 3 2 2 2 1 1 1 1 1
现观察样例2,可以发现排序3
和排序4
中均未出现不一致pair
的文档对,因此他们的τ得分是一样的,并且均为1,但是排序3
中存在28
个文档对,而排序4
中存在45
个文档对,所以排序4
存在更多的训练数据,因此排序4
的数据相当于RankSvm
来说更加重要。
因此IRSVM
将召回的文档个数纳入了排序
其实这点比较纠结,实际使用中会进行数据过滤,而且最终训练的时候也一般都是取
top10
进行训练,所以这个问题并不会很明显
优化学习方法
所以IRSVM
考虑了不同排序位置的不同重要性,以及各个query
召回的数量,对原始的RankSVM
损失函数进行修改得到如下:
minwN∑i=1τk(i)μq(i))[1−yi(w,x(1)i−x(2)i)]++λ||w||2
其实重要是添加了位置得分因子τk(i),使用NDCG@1
中的方法进行折损,以及添加了query
召回的文档长度因子μq(i),使用的是最简单粗暴的1nq进行计算,其中nq表示召回的文档数量。
[2]中提出IRSVM
的时候还使用了SGD
和线性规划
进行了优化
2005-RankNet
RankNet
的相关学习记录在这里
2007-GBRank
GBRank
的相关学习记录在这里
参考
- 《Learning to Rank for Information Retrieval and Natural Language Processing》.Hang Li
- Cao Y, Xu J, Liu T Y, et al. Adapting ranking SVM to document retrieval[C]// SIGIR 2006: Proceedings of the International ACM SIGIR Conference on Research and Development in Information Retrieval, Seattle, Washington, Usa, August. 2006:186-193.